#include"process.h"

#define N 101
#define TYPE '#'

void process_v2(double current, double total)
{
    char buffer[N];
    memset(buffer,0,sizeof(buffer));

    char lable[]="|/-\\";
    int len = strlen(lable);


    int num = (int)(current*100 / total);
    int i = 0;
    for(i = 0; i < num; i++)
    {
        buffer[i]=TYPE;
    }

    static int cnt = 0;
    double rate = current*100 / total;
    printf("[%-100s][%.2lf%%][%c]\r",buffer, rate, lable[cnt % len]);
    cnt++;
    fflush(stdout);
} 

//#define N 101
//#define CH '#'
//void process_v1()
//{
//    char buffer[N]; // 定义一个字符数组来显示进度条
//    memset(buffer,0,sizeof(buffer)); // 将数组内容初始化为全0
//  
//    char lable[] ={"|/-\\"}; // 定义lable数组来显示进度条的工作状态
//    int len = strlen(lable);
//    int cnt = 0;
//    while(cnt<=100)
//    {
//        printf("[%-100s][%d%%][%c]\r",buffer,cnt,lable[cnt % len]); //r---回车，保证光标每次都能回到起始位置
//        fflush(stdout); // 刷新缓冲区，将缓冲区的内容输出到显示器
//        buffer[cnt]=CH; // 每次向buffer数组写入一个 '#'，代表进度加1
//        cnt++; // 计数器加加
//        usleep(100000); //休眠100微秒
//    }
//    printf("\n"); // 换行同时也会刷新缓冲区
//}
